Enterprise storage systems store data in large-scale environments and differ from consumer storage systems in both the size of the environment and the types of technologies that store and manage the data. Storage area networks (SANs) are commonly used in enterprise storage systems to transfer data between computer systems and storage devices. A typical SAN provides a communication infrastructure, including physical connections between computer systems, storage devices, and a management layer that organizes the connections between computer systems and storage devices.
In a SAN environment, computer systems, typically referred to as hosts, connect to the SAN via one or more host bus adapters. In the case of a Fibre Channel SAN, the physical connections between hosts and storage devices may include special Fibre Channel host bus adapters, Fibre Channel switches, Fibre Channel routers, and optical fiber.
Storage devices may include multiple disk drives that combine to form a disk array. A typical disk array includes a disk array controller, a cache, disk enclosures, and a power supply. Examples of disk arrays include the SYMMETRIX Integrated Cache Disk Array System and the CLARIION Disk Array System, both available from EMC Corporation of Hopkinton, Mass. A disk array controller is a piece of hardware that provides storage services to computer systems that access the disk array. The disk array controller may attach to a number of disk drives that are located in the disk enclosures. For example, the disk drives may be organized into redundant array of inexpensive disks (RAID) groups for redundancy and efficient performance. RAID is a system that uses multiple disk drives that share or replicate data among the drives Accordingly, a RAID system can present multiple physical hard drives to a host as a single logical disk drive.
Disk array controllers connect to a SAN via a port. A port serves as an interface between the disk array controller and other devices, such as the hosts, in the SAN. Each disk array controller typically includes two or more ports. Disk array controllers may communicate with other devices using various protocols, such as the SCSI (Small Computer System Interface) command protocol over a Fibre Channel link to the SAN. In the SCSI command protocol, each device is assigned a unique numerical identifier, which is referred to as a logical unit number (LUN). Further, communication using the SCSI protocol is said to occur between an “initiator” (e.g., a host bus adapter port) and a “target” (e.g., a storage controller port) via a path (i.e., a storage path). For example, a path may include a host bus adapter port, associated SCSI bus or Fibre Channel cabling, a disk array port, and a LUN. The types of path components in use vary with the storage I/O transport technology in use.
Management of storage paths is provided by path management software. Path management software is a host-based software solution that is used to manage paths and, among other things, can detect load imbalances across paths and buses and can identify alternate paths through which to route data. An example of path management software is EMC POWERPATH by EMC Corporation of Hopkinton, Mass.
Although prior path management software systems may monitor load balances and identify alternate paths through which to route data, a network or storage administrator must evaluate network path faults. Current approaches for detecting setup and path problems in a SAN require analysis of difficult to read output from various user interfaces, including CLIs. Although custom programming and scripts are available to monitor system logs and device states, the number of path faults that an administrator must identify and remedy increases dramatically as the amount of data and number of physical connections between initiators and targets increase. This may cause a delay in the administrator restoring a path, and lead to increased costs due to having administrators responsible for managing path management. Further, detecting setup and path problems in prior path management systems require the use of custom programming/scripts to monitor system logs and device states or a host-based Command Line Interface (CLI) typically accessed via remote shell and analysis of complex and unwieldy text output from CLIs.